1. Field of the Invention
The invention relates generally to error recovery in a serial protocol and more specifically relates to a customized circuit within a Serial Attached SCSI (SAS) expander to process SATA errors detected in a Serial Advanced Technology Attachment (SATA) end device coupled with the expander.
2. Related Patents
This patent is related to commonly owned U.S. Pat. No. 7,738,366 entitled METHODS AND STRUCTURE FOR DETECTING SAS LINK ERRORS WITH MINIMAL IMPACT ON SAS INITIATOR AND LINK BANDWIDTH which is hereby incorporated by reference and is herein referred to as the “Related Patent”.
3. Discussion of Related Art
High speed serial communication systems have grown in popularity due to reduced cabling costs and the increased usable length enabled by a smaller cable with differential signaling. In particular, storage systems end devices often utilize SAS and/or SATA high speed serial communication media and protocols to provide reduced cost, improved cabling lengths, and high performance.
In some embodiments, a SAS switched fabric (SAS Service Delivery Subsystem) allows coupling of SATA storage devices to the SAS domain to provide lower cost alternatives for high performance storage devices (e.g., SATA disk drives). In such environments, the SATA Tunneling Protocol (STP) of the SAS specifications is used to allow an STP initiator to open a connection through the SAS switched fabric to a SATA storage device. The switched fabric comprises one or more SAS expanders providing switchable point to point connections between an initiator device (e.g., an STP initiator such as a host system storage controller) and a target device (e.g., a SATA storage device).
In general, once a connection is established between an initiator and a target, the switched fabric becomes, essentially, a passive conduit for passing information between the two end devices (i.e., between the connected initiator and target devices). Some SAS expanders have been enhanced to provide more intelligence than a mere “passive conduit”. For example, the SAS expander discussed in the Related Patent is adapted to detect SAS link layer errors in physical links (PHYs) of the expander (and/or PHYs of other expanders in the fabric). The detected errors may be reported an initiator and the expander may take actions to reduce the possibility of further errors being generated on the failed link. Thus, the Related Patent detects an error and attempts to reduce the same error being reported multiple times.
Some recent developments have further enhanced SAS expanders to provide for speed matching buffering within the expander such that a higher speed device (e.g., a high speed initiator) may communicate with the expander at its full speed while the targeted end device is coupled with the expander at a slower speed. For example, some recent expanders from LSI Corporation include a feature named “End Device Frame Buffering” (EDFB) to provide, among other features, such speed matching buffering. When the EDFB features are in use, the enhanced expander has indicated to the higher speed initiator that the request has completed (e.g., a write request sending data from the initiator to the target). The associated data may reside within the EDFB enhanced expander awaiting forwarding to the addressed target device (operating at a slower data rate). If an error arises in forwarding such buffered data to the target device, software (“firmware”) within the expander processes the detected error and performs appropriate error recovery to retry the failed transfer.
Since errors can occur with some frequency (errors recoverable by retry procedures) and since expanders can have a large number of ports (e.g., PHYs coupled with end target devices), the error recovery/retry processing in such an EDFB enhanced expander can create a significant processing load on the expander operation. A large number of errors from various ports would have to be tracked and recovered. Such processing in the expander overburdens the expander's firmware thus reducing overall performance of the entire system. In other words, the burden of error recovery processing in firmware of an EDFB enhanced SAS expander can negatively impact performance enhancements otherwise realized by the EDFB enhancements (or by similar buffering features in non-LSI enhanced SAS expanders).
Thus it is an ongoing challenge to improve error detection and recovery in a SAS expander that provides speed-matching buffering between initiator and target devices.